#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>

#define    BUFFSIZE 10
int main(int argc,char **argv)
{
    pid_t          pid = -1;
    char           buf[BUFFSIZE];
    int            status;
       
    printf("%%");
    while(fgets(buf,sizeof(buf),stdin) != NULL)
    {
           if(buf[strlen(buf) - 1] == '\n')
               buf[strlen(buf) - 1] = 0;

           if((pid=fork()) < 0)
               printf("fork error: %s\n",strerror(errno));

           else if((pid=fork()) == 0)
           {
               execlp(buf,buf,(char *)0);
           }

        
           if((pid = waitpid(pid,&status,0)) < 0 )
               printf("waitpid error: %s\n",strerror(errno));
           printf("%%");
    }

    return 0;
}
